fmap :: (a -> b) -> (r -> a) -> (r -> b)